/*—————————————————————————————————————————————————————————— 动态路由函数参数类型 ——————————————————————————————————————————————————————————*/
import { DefaultState } from './initialState'
import { IRoute } from '@/router/interface'
import { UserMenu } from '@/utils/interface'

// 更新路由渲染数组函数接口
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
type newRouters = {
  payload: IRoute[]
}
export interface UpdataRouter {
  (state: DefaultState, modify: newRouters): void
}

// 改变导航页面结构展示开关函数接口
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// 改变导航页面结构展示开关函数接口修改数据类型
type changeLayoutModify = {
  payload: IRoute['isLayOut']
}
export interface changeLayoutInterface {
  (state: DefaultState, modify: changeLayoutModify): void
}

// 全局loading配置方法接口
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// 全局loading配置方法接口修改数据类型
type OverallLoadingModify = {
  payload: {
    status: boolean
    text?: string
  }
}
export interface OverallLoading {
  (state: DefaultState, modify: OverallLoadingModify): void
}

// 设置用户导航菜单栏接口
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// 设置用户导航菜单栏修改数据类型
type UserMenuModify = {
  payload: UserMenu[]
}
export interface SetUserMenu {
  (state: DefaultState, modify: UserMenuModify): void
}
